<?xml version="1.0" encoding="UTF-8" ?>
<class name="MeshInstance" inherits="GeometryInstance" category="Core" version="3.0.alpha.custom_build">
	<brief_description>
		Node that instances meshes into a scenario.
	</brief_description>
	<description>
		MeshInstance is a [Node] that takes a [Mesh] resource and adds it to the current scenario by creating an instance of it. This is the class most often used to get 3D geometry rendered and can be used to instance a single [Mesh] in many places. This allows to reuse geometry and save on resources. When a [Mesh] has to be instanced more than thousands of times at close proximity, consider using a [MultiMesh] in a [MultiMeshInstance] instead.
	</description>
	<tutorials>
	</tutorials>
	<demos>
	</demos>
	<methods>
		<method name="create_convex_collision">
			<return type="void">
			</return>
			<description>
				This helper creates a [StaticBody] child [Node] with a [ConvexPolygonShape] [CollisionShape] calculated from the mesh geometry. It's mainly used for testing.
			</description>
		</method>
		<method name="create_debug_tangents">
			<return type="void">
			</return>
			<description>
			</description>
		</method>
		<method name="create_trimesh_collision">
			<return type="void">
			</return>
			<description>
				This helper creates a [StaticBody] child [Node] with a [ConcavePolygonShape] [CollisionShape] calculated from the mesh geometry. It's mainly used for testing.
			</description>
		</method>
		<method name="get_mesh" qualifiers="const">
			<return type="Mesh">
			</return>
			<description>
				Returns the current [Mesh] resource for the instance.
			</description>
		</method>
		<method name="get_skeleton_path">
			<return type="NodePath">
			</return>
			<description>
			</description>
		</method>
		<method name="get_surface_material" qualifiers="const">
			<return type="Material">
			</return>
			<argument index="0" name="surface" type="int">
			</argument>
			<description>
				Returns the [Material] for a surface of the [Mesh] resource.
			</description>
		</method>
		<method name="set_mesh">
			<return type="void">
			</return>
			<argument index="0" name="mesh" type="Mesh">
			</argument>
			<description>
			</description>
		</method>
		<method name="set_skeleton_path">
			<return type="void">
			</return>
			<argument index="0" name="skeleton_path" type="NodePath">
			</argument>
			<description>
			</description>
		</method>
		<method name="set_surface_material">
			<return type="void">
			</return>
			<argument index="0" name="surface" type="int">
			</argument>
			<argument index="1" name="material" type="Material">
			</argument>
			<description>
				Sets the [Material] for a surface of the [Mesh] resource.
			</description>
		</method>
	</methods>
	<members>
		<member name="mesh" type="Mesh" setter="set_mesh" getter="get_mesh">
			The [Mesh] resource for the instance.
		</member>
		<member name="skeleton" type="NodePath" setter="set_skeleton_path" getter="get_skeleton_path">
			[NodePath] to the [Skeleton] associated with the instance.
		</member>
	</members>
	<constants>
	</constants>
</class>
